{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "90994ab2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-10-02T20:22:04.252901Z",
     "iopub.status.busy": "2021-10-02T20:22:04.172225Z",
     "iopub.status.idle": "2021-10-02T20:22:05.850592Z",
     "shell.execute_reply": "2021-10-02T20:22:05.849516Z",
     "shell.execute_reply.started": "2021-10-02T20:10:52.706480Z"
    },
    "papermill": {
     "duration": 1.689259,
     "end_time": "2021-10-02T20:22:05.850770",
     "exception": false,
     "start_time": "2021-10-02T20:22:04.161511",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn import preprocessing\n",
    "from sklearn.metrics import mean_squared_error\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.preprocessing import OrdinalEncoder\n",
    "from xgboost import XGBRegressor\n",
    "import optuna"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7d7d0b1f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-10-02T20:22:05.871046Z",
     "iopub.status.busy": "2021-10-02T20:22:05.870215Z",
     "iopub.status.idle": "2021-10-02T20:22:11.569962Z",
     "shell.execute_reply": "2021-10-02T20:22:11.570420Z",
     "shell.execute_reply.started": "2021-10-02T20:10:54.455776Z"
    },
    "papermill": {
     "duration": 5.712371,
     "end_time": "2021-10-02T20:22:11.570606",
     "exception": false,
     "start_time": "2021-10-02T20:22:05.858235",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Loading data \n",
    "X_train = pd.read_csv(\"../input/30-days-of-ml/train.csv\").iloc[:100_000, :]\n",
    "X_test = pd.read_csv(\"../input/30-days-of-ml/test.csv\")\n",
    "\n",
    "# Preparing data as a tabular matrix\n",
    "y_train = X_train.target\n",
    "X_train = X_train.set_index('id').drop('target', axis='columns')\n",
    "X_test = X_test.set_index('id')\n",
    "\n",
    "# Pointing out categorical features\n",
    "categoricals = [item for item in X_train.columns if 'cat' in item]\n",
    "\n",
    "# Dealing with categorical data using OrdinalEncoder\n",
    "ordinal_encoder = OrdinalEncoder()\n",
    "X_train[categoricals] = ordinal_encoder.fit_transform(X_train[categoricals])\n",
    "X_test[categoricals] = ordinal_encoder.transform(X_test[categoricals])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "f0d1b27e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-10-02T20:22:11.592461Z",
     "iopub.status.busy": "2021-10-02T20:22:11.591573Z",
     "iopub.status.idle": "2021-10-02T20:22:11.595619Z",
     "shell.execute_reply": "2021-10-02T20:22:11.595161Z",
     "shell.execute_reply.started": "2021-10-02T20:15:51.959882Z"
    },
    "papermill": {
     "duration": 0.018469,
     "end_time": "2021-10-02T20:22:11.595736",
     "exception": false,
     "start_time": "2021-10-02T20:22:11.577267",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "from optuna.integration import XGBoostPruningCallback\n",
    "\n",
    "def objective(trial):\n",
    "    \n",
    "    params = {\n",
    "            'learning_rate': trial.suggest_float(\"learning_rate\", 0.01, 1.0, log=True),\n",
    "            'reg_lambda': trial.suggest_loguniform(\"reg_lambda\", 1e-9, 100.0),\n",
    "            'reg_alpha': trial.suggest_loguniform(\"reg_alpha\", 1e-9, 100.0),\n",
    "            'subsample': trial.suggest_float(\"subsample\", 0.1, 1.0),\n",
    "            'colsample_bytree': trial.suggest_float(\"colsample_bytree\", 0.1, 1.0),\n",
    "            'max_depth': trial.suggest_int(\"max_depth\", 1, 7),\n",
    "            'min_child_weight': trial.suggest_int(\"min_child_weight\", 1, 7),\n",
    "            'gamma': trial.suggest_float(\"gamma\", 0.1, 1.0, step=0.1)\n",
    "    }\n",
    "\n",
    "    model = XGBRegressor(\n",
    "        random_state=0,\n",
    "        tree_method=\"gpu_hist\",\n",
    "        predictor=\"gpu_predictor\",\n",
    "        n_estimators=10_000,\n",
    "        **params,\n",
    "    )\n",
    "    \n",
    "    model.fit(x, y, early_stopping_rounds=300, eval_set=[(x_val, y_val)], verbose=1000,\n",
    "              callbacks=[XGBoostPruningCallback(trial, 'validation_0-rmse')])\n",
    "    preds = model.predict(x_test)\n",
    "    rmse = mean_squared_error(y_test, preds, squared=False)\n",
    "    \n",
    "    return rmse\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "a3a1cbb6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-10-02T20:22:11.616783Z",
     "iopub.status.busy": "2021-10-02T20:22:11.615386Z",
     "iopub.status.idle": "2021-10-02T20:22:43.623697Z",
     "shell.execute_reply": "2021-10-02T20:22:43.623216Z"
    },
    "papermill": {
     "duration": 32.02249,
     "end_time": "2021-10-02T20:22:43.623832",
     "exception": false,
     "start_time": "2021-10-02T20:22:11.601342",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:11,655]\u001b[0m A new study created in memory with name: no-name-e8f1f9b7-127e-40ae-a6ee-cab97bf770c2\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.40017\n",
      "[1000]\tvalidation_0-rmse:0.72273\n",
      "[1646]\tvalidation_0-rmse:0.72259\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:15,187]\u001b[0m Trial 0 finished with value: 0.7217076753069084 and parameters: {'learning_rate': 0.049310006518532, 'reg_lambda': 9.45628518237362e-09, 'reg_alpha': 2.068123919173516e-05, 'subsample': 0.8463700298755155, 'colsample_bytree': 0.7822341667593867, 'max_depth': 3, 'min_child_weight': 7, 'gamma': 0.5}. Best is trial 0 with value: 0.7217076753069084.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:3.35950\n",
      "[476]\tvalidation_0-rmse:0.72947\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:15,917]\u001b[0m Trial 1 finished with value: 0.7249820567352396 and parameters: {'learning_rate': 0.577109653186502, 'reg_lambda': 3.822877912047026e-09, 'reg_alpha': 1.659900803891716e-09, 'subsample': 0.7187550740527774, 'colsample_bytree': 0.35617899757938987, 'max_depth': 2, 'min_child_weight': 6, 'gamma': 0.6}. Best is trial 0 with value: 0.7217076753069084.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:4.02636\n",
      "[1000]\tvalidation_0-rmse:0.72479\n",
      "[1257]\tvalidation_0-rmse:0.72478\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:17,446]\u001b[0m Trial 2 finished with value: 0.7236482865506185 and parameters: {'learning_rate': 0.48954720208477337, 'reg_lambda': 19.976881453086353, 'reg_alpha': 1.694281017812112e-06, 'subsample': 0.2687201915822446, 'colsample_bytree': 0.6216953757667084, 'max_depth': 1, 'min_child_weight': 7, 'gamma': 0.30000000000000004}. Best is trial 0 with value: 0.7217076753069084.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:3.32585\n",
      "[305]\tvalidation_0-rmse:0.86830\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:18,984]\u001b[0m Trial 3 finished with value: 0.7373167869330038 and parameters: {'learning_rate': 0.581552173165265, 'reg_lambda': 2.473669455475455e-07, 'reg_alpha': 1.9294721857329786e-08, 'subsample': 0.717022026691727, 'colsample_bytree': 0.6794515372917472, 'max_depth': 6, 'min_child_weight': 3, 'gamma': 0.5}. Best is trial 0 with value: 0.7217076753069084.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:6.96088\n",
      "[1000]\tvalidation_0-rmse:0.72160\n",
      "[2000]\tvalidation_0-rmse:0.72043\n",
      "[2273]\tvalidation_0-rmse:0.72055\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:22,435]\u001b[0m Trial 4 finished with value: 0.7205040285992036 and parameters: {'learning_rate': 0.10636257376295255, 'reg_lambda': 0.0031467926385712265, 'reg_alpha': 11.521090168065632, 'subsample': 0.9214714738628846, 'colsample_bytree': 0.2689981446216597, 'max_depth': 2, 'min_child_weight': 3, 'gamma': 0.1}. Best is trial 4 with value: 0.7205040285992036.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.68648\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:22,490]\u001b[0m Trial 5 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:22,549]\u001b[0m Trial 6 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:22,607]\u001b[0m Trial 7 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:5.96228\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:22,671]\u001b[0m Trial 8 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:22,733]\u001b[0m Trial 9 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:6.71651\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:22,821]\u001b[0m Trial 10 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.29857\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:22,908]\u001b[0m Trial 11 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.12982\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:23,006]\u001b[0m Trial 12 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:6.10184\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:23,089]\u001b[0m Trial 13 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:23,173]\u001b[0m Trial 14 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:23,252]\u001b[0m Trial 15 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.61144\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:23,332]\u001b[0m Trial 16 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.06511\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:23,428]\u001b[0m Trial 17 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:5.61525\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:23,508]\u001b[0m Trial 18 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.28763\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:23,591]\u001b[0m Trial 19 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:0.77183\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:23,878]\u001b[0m Trial 20 pruned. Trial was pruned at iteration 69.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:23,962]\u001b[0m Trial 21 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:6.75814\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:24,038]\u001b[0m Trial 22 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.62421\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:24,122]\u001b[0m Trial 23 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.42349\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:24,204]\u001b[0m Trial 24 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:0.81333\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:24,380]\u001b[0m Trial 25 pruned. Trial was pruned at iteration 54.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:24,463]\u001b[0m Trial 26 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:24,546]\u001b[0m Trial 27 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.22878\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:24,630]\u001b[0m Trial 28 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:3.54420\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:25,043]\u001b[0m Trial 29 pruned. Trial was pruned at iteration 147.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:25,125]\u001b[0m Trial 30 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.97394\n",
      "[476]\tvalidation_0-rmse:0.72922\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:26,045]\u001b[0m Trial 31 finished with value: 0.7248839366524328 and parameters: {'learning_rate': 0.6281784194207161, 'reg_lambda': 1.3679244036281607e-08, 'reg_alpha': 1.2095561468285127e-09, 'subsample': 0.6838596998978662, 'colsample_bytree': 0.18822595970496175, 'max_depth': 2, 'min_child_weight': 6, 'gamma': 0.5}. Best is trial 4 with value: 0.7205040285992036.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.50339\n",
      "[437]\tvalidation_0-rmse:0.72701\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:26,891]\u001b[0m Trial 32 finished with value: 0.7235683796899206 and parameters: {'learning_rate': 0.6915443008530024, 'reg_lambda': 5.0043059940322545e-08, 'reg_alpha': 2.0604524741217515e-09, 'subsample': 0.9297119240129025, 'colsample_bytree': 0.19471484952830936, 'max_depth': 2, 'min_child_weight': 6, 'gamma': 0.5}. Best is trial 4 with value: 0.7205040285992036.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.64652\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:26,975]\u001b[0m Trial 33 pruned. Trial was pruned at iteration 5.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:5.02287\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:27,052]\u001b[0m Trial 34 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.29483\n",
      "[1000]\tvalidation_0-rmse:0.72220\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:30,544]\u001b[0m Trial 35 pruned. Trial was pruned at iteration 1647.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:30,626]\u001b[0m Trial 36 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:30,709]\u001b[0m Trial 37 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:5.33091\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:30,793]\u001b[0m Trial 38 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.53629\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:30,879]\u001b[0m Trial 39 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:6.90610\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:30,963]\u001b[0m Trial 40 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.37268\n",
      "[442]\tvalidation_0-rmse:0.73166\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:31,859]\u001b[0m Trial 41 finished with value: 0.7249311570774143 and parameters: {'learning_rate': 0.709083726671331, 'reg_lambda': 1.1703242341756605e-08, 'reg_alpha': 1.0832133450452699e-09, 'subsample': 0.6746741338592245, 'colsample_bytree': 0.19209887886035332, 'max_depth': 2, 'min_child_weight': 6, 'gamma': 0.5}. Best is trial 4 with value: 0.7205040285992036.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:1.70810\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:31,957]\u001b[0m Trial 42 pruned. Trial was pruned at iteration 7.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:4.66693\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:32,044]\u001b[0m Trial 43 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:5.57480\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:32,129]\u001b[0m Trial 44 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:3.40373\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:32,214]\u001b[0m Trial 45 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.61691\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:32,303]\u001b[0m Trial 46 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:32,384]\u001b[0m Trial 47 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:5.92776\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:32,464]\u001b[0m Trial 48 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:32,542]\u001b[0m Trial 49 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:32,627]\u001b[0m Trial 50 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:1.94219\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:33,321]\u001b[0m Trial 51 pruned. Trial was pruned at iteration 356.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.85896\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:33,422]\u001b[0m Trial 52 pruned. Trial was pruned at iteration 7.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:0.98804\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:34,121]\u001b[0m Trial 53 pruned. Trial was pruned at iteration 357.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:34,205]\u001b[0m Trial 54 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.58036\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:34,292]\u001b[0m Trial 55 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.17289\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:34,378]\u001b[0m Trial 56 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:34,466]\u001b[0m Trial 57 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:34,556]\u001b[0m Trial 58 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:34,638]\u001b[0m Trial 59 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:3.15430\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:35,309]\u001b[0m Trial 60 pruned. Trial was pruned at iteration 345.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:1.42235\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:35,556]\u001b[0m Trial 61 pruned. Trial was pruned at iteration 102.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:3.68686\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:35,639]\u001b[0m Trial 62 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:0.74284\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:35,772]\u001b[0m Trial 63 pruned. Trial was pruned at iteration 27.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.46579\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:35,864]\u001b[0m Trial 64 pruned. Trial was pruned at iteration 5.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:4.71535\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:35,945]\u001b[0m Trial 65 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:36,032]\u001b[0m Trial 66 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:6.40458\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:36,122]\u001b[0m Trial 67 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:3.21558\n",
      "[448]\tvalidation_0-rmse:0.72799\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:37,032]\u001b[0m Trial 68 finished with value: 0.7249973952479691 and parameters: {'learning_rate': 0.5961090958951453, 'reg_lambda': 5.877128831593368e-08, 'reg_alpha': 1.2861524163958024e-08, 'subsample': 0.8935388841537604, 'colsample_bytree': 0.7632978387631372, 'max_depth': 2, 'min_child_weight': 5, 'gamma': 0.5}. Best is trial 4 with value: 0.7205040285992036.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:1.53113\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:37,220]\u001b[0m Trial 69 pruned. Trial was pruned at iteration 54.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.33771\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:37,302]\u001b[0m Trial 70 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.80405\n",
      "[424]\tvalidation_0-rmse:0.72946\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:38,173]\u001b[0m Trial 71 finished with value: 0.7251580599447309 and parameters: {'learning_rate': 0.6509280884660662, 'reg_lambda': 6.678850782493239e-08, 'reg_alpha': 1.1340889541486079e-08, 'subsample': 0.8913655181965324, 'colsample_bytree': 0.7565220661738712, 'max_depth': 2, 'min_child_weight': 5, 'gamma': 0.5}. Best is trial 4 with value: 0.7205040285992036.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:3.93932\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:38,261]\u001b[0m Trial 72 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:3.07759\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:38,402]\u001b[0m Trial 73 pruned. Trial was pruned at iteration 23.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:4.44723\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:38,483]\u001b[0m Trial 74 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:1.84374\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:38,641]\u001b[0m Trial 75 pruned. Trial was pruned at iteration 36.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:38,720]\u001b[0m Trial 76 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:38,801]\u001b[0m Trial 77 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:5.09303\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:38,889]\u001b[0m Trial 78 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:38,972]\u001b[0m Trial 79 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.26045\n",
      "[407]\tvalidation_0-rmse:0.72983\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:39,844]\u001b[0m Trial 80 finished with value: 0.7255407725465993 and parameters: {'learning_rate': 0.7244152485382648, 'reg_lambda': 1.7050327950865494e-08, 'reg_alpha': 1.7061058023993955e-09, 'subsample': 0.9096207246328165, 'colsample_bytree': 0.5300907971268992, 'max_depth': 2, 'min_child_weight': 5, 'gamma': 0.5}. Best is trial 4 with value: 0.7205040285992036.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.82452\n",
      "[447]\tvalidation_0-rmse:0.72938\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:40,879]\u001b[0m Trial 81 finished with value: 0.7239798083326201 and parameters: {'learning_rate': 0.6482027873703261, 'reg_lambda': 1.902678036147321e-07, 'reg_alpha': 9.793864980094466e-09, 'subsample': 0.8946049527449215, 'colsample_bytree': 0.755929436913572, 'max_depth': 2, 'min_child_weight': 4, 'gamma': 0.5}. Best is trial 4 with value: 0.7205040285992036.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:3.24489\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:40,960]\u001b[0m Trial 82 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:0.97609\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:41,092]\u001b[0m Trial 83 pruned. Trial was pruned at iteration 26.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:4.18222\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:41,179]\u001b[0m Trial 84 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:41,267]\u001b[0m Trial 85 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:7.57458\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:41,354]\u001b[0m Trial 86 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.33141\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:41,479]\u001b[0m Trial 87 pruned. Trial was pruned at iteration 22.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:4.77633\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:41,561]\u001b[0m Trial 88 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:1.26597\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:41,701]\u001b[0m Trial 89 pruned. Trial was pruned at iteration 23.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:41,793]\u001b[0m Trial 90 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.44016\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:42,000]\u001b[0m Trial 91 pruned. Trial was pruned at iteration 68.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.92729\n",
      "[426]\tvalidation_0-rmse:0.72595\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:42,858]\u001b[0m Trial 92 finished with value: 0.7242507198313827 and parameters: {'learning_rate': 0.6345920980722003, 'reg_lambda': 4.745579362828088e-08, 'reg_alpha': 5.5110305295977725e-09, 'subsample': 0.9878016250120008, 'colsample_bytree': 0.7965012788528355, 'max_depth': 2, 'min_child_weight': 5, 'gamma': 0.5}. Best is trial 4 with value: 0.7205040285992036.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:3.03943\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:42,945]\u001b[0m Trial 93 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:3.96244\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:43,032]\u001b[0m Trial 94 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:43,118]\u001b[0m Trial 95 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:1.93992\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:43,224]\u001b[0m Trial 96 pruned. Trial was pruned at iteration 5.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:43,307]\u001b[0m Trial 97 pruned. Trial was pruned at iteration 0.\u001b[0m\n",
      "\u001b[32m[I 2021-10-02 20:22:43,391]\u001b[0m Trial 98 pruned. Trial was pruned at iteration 0.\u001b[0m\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0]\tvalidation_0-rmse:2.67122\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[32m[I 2021-10-02 20:22:43,617]\u001b[0m Trial 99 pruned. Trial was pruned at iteration 72.\u001b[0m\n"
     ]
    }
   ],
   "source": [
    "x, x_val, y, y_val = train_test_split(X_train, y_train, random_state=0, test_size=0.2)\n",
    "x, x_test, y, y_test = train_test_split(x, y, random_state=0, test_size=0.25)\n",
    "study = optuna.create_study(direction=\"minimize\")\n",
    "study.optimize(objective, n_trials=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "d4ef127d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-10-02T20:22:43.744391Z",
     "iopub.status.busy": "2021-10-02T20:22:43.734480Z",
     "iopub.status.idle": "2021-10-02T20:22:43.747115Z",
     "shell.execute_reply": "2021-10-02T20:22:43.747536Z",
     "shell.execute_reply.started": "2021-10-02T20:19:38.463947Z"
    },
    "papermill": {
     "duration": 0.069095,
     "end_time": "2021-10-02T20:22:43.747671",
     "exception": false,
     "start_time": "2021-10-02T20:22:43.678576",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.7205040285992036\n",
      "{'learning_rate': 0.10636257376295255, 'reg_lambda': 0.0031467926385712265, 'reg_alpha': 11.521090168065632, 'subsample': 0.9214714738628846, 'colsample_bytree': 0.2689981446216597, 'max_depth': 2, 'min_child_weight': 3, 'gamma': 0.1}\n"
     ]
    }
   ],
   "source": [
    "print(study.best_value)\n",
    "print(study.best_params)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e60ac619",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2021-10-02T20:20:19.441206Z",
     "iopub.status.busy": "2021-10-02T20:20:19.440475Z",
     "iopub.status.idle": "2021-10-02T20:20:19.457542Z",
     "shell.execute_reply": "2021-10-02T20:20:19.456870Z",
     "shell.execute_reply.started": "2021-10-02T20:20:19.441173Z"
    },
    "papermill": {
     "duration": 0.053889,
     "end_time": "2021-10-02T20:22:43.854840",
     "exception": false,
     "start_time": "2021-10-02T20:22:43.800951",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6331e696",
   "metadata": {
    "papermill": {
     "duration": 0.053454,
     "end_time": "2021-10-02T20:22:43.962394",
     "exception": false,
     "start_time": "2021-10-02T20:22:43.908940",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.10"
  },
  "papermill": {
   "default_parameters": {},
   "duration": 47.611304,
   "end_time": "2021-10-02T20:22:45.317719",
   "environment_variables": {},
   "exception": null,
   "input_path": "__notebook__.ipynb",
   "output_path": "__notebook__.ipynb",
   "parameters": {},
   "start_time": "2021-10-02T20:21:57.706415",
   "version": "2.3.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
